﻿#region File and License Information
/*
<File>
	<License>
		Copyright © 2009 - 2017, Daniel Vaughan. All rights reserved.
		This file is part of Calcium (http://calciumsdk.net), 
		which is released under the MIT License.
		See file /Documentation/License.txt for details.
	</License>
	<CreationDate>2013-03-21 16:49:10Z</CreationDate>
</File>
*/
#endregion

using System;

namespace Outcoder.Audio
{
	public interface ISoundEffect : IDisposable
	{
		/// <summary>
		/// Plays or resumes a sound effect.
		/// </summary>
		/// <param name="volume">Volume, ranging from 0.0f (silence) to 1.0f (full volume). 1.0f is full volume relative to SoundEffect.MasterVolume.</param>
		/// <param name="pitch">Pitch adjustment, ranging from -1.0f (down one octave) to 1.0f (up one octave). 0.0f is unity (normal) pitch.</param>
		/// <param name="pan">Panning, ranging from -1.0f (full left) to 1.0f (full right). 0.0f is centered.</param>
		void Play(float volume = 1.0f, float pitch = 0.0f, float pan = 0.0f);

		/// <summary>
		/// Stops playing a sound effect. Either immediately, or as authored.
		/// </summary>
		/// <param name="immediate">If <c>true</c> the sound effect is stopped immediately. 
		/// Otherwise it stops after the end of the current loop.</param>
		void Stop(bool immediate = true);
	}
}